package com.bjsxt.ios4;

import java.io.*;

/**
 * 1.使用缓冲流可以提高读写的速度
 * 2.关闭高层流即可，无需再关闭底层流。关闭高层流其实就是在关闭底层流
 * 3.缓冲流为什么可以提高查询的速度
 *   引入了输入输出两个缓冲区，大大减少了读写硬盘的次数
 * 4.如何刷新输出缓存区（将缓存区的最新数据写入文件中）
 *   方法1： bos.close(); 先刷新在关闭流
 *   方法2：直接bos.flush()
 *   方法3：缓冲区满，自动刷新
 *
 *
 *
 */
public class TestCopy1 {
    public static void main(String[] args) throws IOException {
        //1.创建输入流和输出流
//        File file1 = new File("e:/01_IO流_IO流体系结构.mp4");
//        File file2 = new File("e:/01_IO流_IO流体系结构2.mp4");
//        InputStream fis = new FileInputStream(file1);
//        OutputStream fos = new FileOutputStream(file2);
//        BufferedInputStream  bis = new BufferedInputStream(fis);
//        BufferedOutputStream bos = new BufferedOutputStream(fos);
        BufferedInputStream  bis = new BufferedInputStream( new FileInputStream("e:/readme.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("e:/readme2.txt"));
        //2.使用输入流和输出流完成文件复制
        int n;//定义一个中转站，就是一个字节
        //先读一个字节
        n = bis.read();//读一个字节
        while(n!=-1){ //n == -1 读到了文件的末尾
            //写一个字节
            bos.write(n);
            //再读一个字节
            n = bis.read();
        }
        //3.完毕输入流和输出流
        //bos.flush();
        bis.close();
        bos.close();

    }
}
